package model.AppModel


import unq.model.Pais
import unq.model.Caso
import org.uqbar.commons.utils.Observable
import java.util.List
import java.util.ArrayList
import org.uqbar.commons.model.ObservableUtils
import unq.model.EstadoJuego
import unq.model.Villano

@Observable
class ResolverMisterioAppModel {
	@Property Caso caso
	@Property Pais paisActual
	@Property Pais paisSeleccionado
	@Property List destinosFallidos = new ArrayList
	@Property List recorridoVillano = new ArrayList
	@Property EstadoJuego estadoJuego
	@Property String emitida
	@Property Villano villanoSeleccionado
	
   new(Caso c){
   	this._caso = c
   	this._paisActual = c.paisDelCrimen
   
   }
   new(Caso c, Pais p){
   		this._caso = c
   		this._caso.setPaisActual(p)
   		this._paisActual = p
        this._destinosFallidos = c.destinosFallidos
        this._estadoJuego = c.estado
        this._recorridoVillano = c.recorridoVillano
   }
	def lugar1()
	{
		this.paisActual.lugaresDeInteres.get(0)
	}
	def lugar2()
	{
		this.paisActual.lugaresDeInteres.get(1)
	}
	def lugar3()
	{
		this.paisActual.lugaresDeInteres.get(2)
	}
	
	def nombrePaisActual() {
	paisActual.nombre
	}
	def ordenEmitida(){
		if(caso.ordenDeArresto == null){
			emitida = "no!"
			ObservableUtils.firePropertyChanged(this, "emitida", this.emitida)
		}else{
			emitida = "Si!"
			ObservableUtils.firePropertyChanged(this, "emitida", this.emitida)
		}
	}
		def darOrden(){
		caso.definirOrdenArresto(villanoSeleccionado.nombre)
			ObservableUtils.firePropertyChanged(this, "ordenDeArresto", caso.ordenDeArresto)
	}
}